//https://www.nowcoder.com/practice/d0267f7f55b3412ba93bd35cfa8e8035?tpId=13&tqId=23278&ru=/exam/oj/ta&qru=/ta/coding-interviews/question-ranking&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D1%26tpId%3D13%26type%3D13

// 描述
// 输入一个链表的头节点，按链表从尾到头的顺序返回每个节点的值（用数组返回）。

// 如输入{1,2,3}的链表如下图:

// 返回一个数组为[3,2,1]

// 0 <= 链表长度 <= 10000
// 示例1
// 输入：
// {1,2,3}
// 复制
// 返回值：
// [3,2,1]
// 复制
// 示例2
// 输入：
// {67,0,24,58}
// 复制
// 返回值：
// [58,24,0,67]
// 复制




/**
*  struct ListNode {
*        int val;
*        struct ListNode *next;
*        ListNode(int x) :
*              val(x), next(NULL) {
*        }
*  };
*/
class Solution {
public:
    vector<int> printListFromTailToHead(ListNode* head) 
    {
        
        vector<int> v;

        while(head)
        {
            v.push_back(head->val);
            head = head->next;
        }

        reverse(v.begin(), v.end());

        return v;
    }
};
